package controller

import (
	"Graphite/model"
	"Graphite/service"
	"Graphite/util"
	"encoding/json"
	"fmt"
	"github.com/gin-gonic/gin"
	"log"
	"strconv"
)

//展示数据
//配置
func GetConfig(c *gin.Context) {
	col := "configuration" //传表明
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page, per_page)
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetConfig(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)

}

//获取质量要求

func GetQuality(c *gin.Context) {
	col := "qualityrequired" //传表明
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetQuality(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)

}

//获取装炉报告

func GetLoad(c *gin.Context) {
	col := "loadoven"
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetLoad(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)

}

//获取送电曲线

func GetElec(c *gin.Context) {
	col := "electricitycurve"
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetElec(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)

}

//获取基本信息

func GetBasicInfo(c *gin.Context) {
	col := "basicinformation"
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetBasicInfo(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)

}

//获取详细信息

func GetDetailInfo(c *gin.Context) {
	col := "detailedinformation"
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetDetailedInfo(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)

}

//获取产品信息

func GetProductInfo(c *gin.Context) {
	col := "production"
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetProductInfo(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)

}

//浸渍
//浸渍小时数据

func GetHourData(c *gin.Context) {
	col := "dippinghourdata"
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetHourInfo(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)
}

//天然气用量

func GetGas(c *gin.Context) {
	col := "naturalgasusage"
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetGasInfo(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)
}

//浸渍系统运行记录

func GetSysNote(c *gin.Context) {
	col := "dippingsystemnote"
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetSysNoteInfo(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)
}

//成型1
//筛分记录
func GetScrRecord(c *gin.Context) {
	col := "screeningrecord"
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetScrInfo(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)
}

//配料记录
func GetIngredNote(c *gin.Context) {
	col := "ingredientrecord"
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetIngredInfo(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)
}

//质检
//检查日报
func GetDaily(c *gin.Context) {
	col := "dailyreport"
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetDaily(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)
}

//隧道窑
//测点信息
func GetLocInfo(c *gin.Context) {
	col := "locationinformation"
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetLocInfo(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)
}

//进车信息
func GetIncar(c *gin.Context) {
	col := "incar"
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetIncarInfo(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)
}

//出车信息
func GetOutcar(c *gin.Context) {
	col := "outcar"
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetOutcarInfo(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)
}

//交接班
func GetHan_Suc(c *gin.Context) {
	col := "han_suc"
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetHan_SucInfo(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)
}

//库管
//原始记录
func GetInitRecord(c *gin.Context) {
	col := "initrecord"
	//获取当前页和每页数据条数
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	key := c.Query("key")
	fmt.Println("-------", key)
	res := service.GetInitInfo(key, col, page, per_page)
	util.Return(c, 200, util.SUCCESS, res)
}

//平台参数
func GetPlatformParameters(c *gin.Context) {
	jsonStr := util.Retrieve(c, "platformparameters", "factory_name", "")
	//格式转化成结构体
	var plat []model.PlatformParameters
_:
	json.Unmarshal(jsonStr, &plat)
	util.Return(c, 200, util.SUCCESS, plat)
}




/*货物管理
数量表
*/
func GetAmount(c *gin.Context){
	col:="amount"
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	dia := c.Query("diameter")
	time_stamp1 := c.Query("time_stamp1")
	time_stamp2 := c.Query("time_stamp2")
	res := service.GetAmount(dia,time_stamp1,time_stamp2,page, per_page,col)
	//res := service.GetTest(time_stamp1,time_stamp2,page, per_page)
	util.Return(c, 200, util.SUCCESS, res)
}
//重量表
func GetWeight(c *gin.Context){
	col:="weight"
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	dia := c.Query("diameter")
	time_stamp1 := c.Query("time_stamp1")
	time_stamp2 := c.Query("time_stamp2")
	res := service.GetWeight(dia,time_stamp1,time_stamp2,page, per_page,col)
	//res := service.GetTest(time_stamp1,time_stamp2,page, per_page)
	util.Return(c, 200, util.SUCCESS, res)
}

//货物汇总表

func GetCargoSummary(c *gin.Context) {
	col:="CargoSummary"
	page, err := strconv.ParseInt(c.Query("page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	fmt.Println(page)
	per_page, err := strconv.ParseInt(c.Query("per_page"), 10, 64)
	if err != nil {
		log.Println(err)
	}
	time_stamp1 := c.Query("time_stamp1")
	time_stamp2 := c.Query("time_stamp2")
	res := service.GetCargoSummary(time_stamp1,time_stamp2,page, per_page,col)
	//res := service.GetTest(time_stamp1,time_stamp2,page, per_page)
	util.Return(c, 200, util.SUCCESS, res)
}
